package com.tcs.swing.jp;

import java.awt.event.ActionListener;
import java.awt.event.ItemListener;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;

import com.tcs.swing.action.MyItemListener;
import com.tcs.swing.action.RepAction;

public class JfromTask implements Runnable {

	/**
	 * 创建JFrame
	 * 
	 * @return frame
	 */
	private JFrame createJFrame() {
		JFrame frame = new JFrame("主窗口");
		frame.setSize(800, 800);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		return frame;
	}

	private JPanel createJPanel() {
		// 创建面板，这个类似于 HTML 的 div 标签 我们可以创建多个面板并在 JFrame 中指定位置 面板中我们可以添加文本字段，按钮及其他组件。
		JPanel panel = new JPanel();
		return panel;
	}

	/**
	 * 初始化JFrame
	 */
	private void initJFrame() {
		JFrame frame = this.createJFrame();
		JPanel panel = this.createJPanel();
		frame.add(panel);
		/*
		 * 调用用户定义的方法并添加组件到面板
		 */
		placeComponents(panel);
		frame.setVisible(true);
	}

	@Override
	public void run() {
		this.initJFrame();
	}

	private void placeComponents(JPanel panel) {
		/*
		 * 布局部分我们这边不多做介绍 这边设置布局为 null
		 */
		panel.setLayout(null);

		// 创建 JLabel
		JLabel userLabel = new JLabel("路径:");
		userLabel.setBounds(10, 20, 80, 25);
		panel.add(userLabel);

		// 创建文本域用于用户输入
		JTextField pathText = new JTextField(20);
		pathText.setBounds(100, 20, 600, 25);
		panel.add(pathText);

		// 替换
		JLabel repStr = new JLabel("添加内容:");
		repStr.setBounds(10, 50, 80, 25);
		panel.add(repStr);

		JTextField repStrText = new JTextField(20);
		repStrText.setBounds(100, 50, 600, 25);
		panel.add(repStrText);
		
		// 输入密码的文本域
		JLabel destlabel = new JLabel("替换内容:");
		destlabel.setBounds(10, 80, 80, 25);
		destlabel.setVisible(false);
		panel.add(destlabel);

		JTextField destTextField = new JTextField(20);
		destTextField.setBounds(100, 80, 600, 25);
		destTextField.setVisible(false);
		panel.add(destTextField);

		ButtonGroup group = new ButtonGroup();

		JRadioButton addRadioButton = new JRadioButton("添加", true);
		addRadioButton.setBounds(10, 100, 80, 25);
		panel.add(addRadioButton);

		JRadioButton repRadioButton = new JRadioButton("替换");
		repRadioButton.setBounds(100, 100, 80, 25);
		panel.add(repRadioButton);

		// 分组的图
		group.add(addRadioButton);
		group.add(repRadioButton);
		// 添加time监听
		ItemListener itemListener = new MyItemListener(addRadioButton,repRadioButton,destlabel,destTextField,repStr,repStrText);
		addRadioButton.addItemListener(itemListener);
		repRadioButton.addItemListener(itemListener);

		// 创建登录按钮
		JButton repButton = new JButton("执行");
		repButton.setBounds(10, 120, 80, 25);
		panel.add(repButton);

		// 绑定事件
		ActionListener repActino = new RepAction(pathText, repStrText , destTextField , addRadioButton , repRadioButton);
		repButton.addActionListener(repActino);

		// 创建
		JLabel gangLabel = new JLabel("--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------");
		gangLabel.setBounds(10, 140, 780, 25);
		panel.add(gangLabel);

	}
}